package com.oristand.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.oristand.mapper.StoreMapper;
import com.oristand.pojo.Store;
import com.oristand.service.StoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

/**
 * Created by Intellij IDEA.
 * 门店管理接口的服务实现
 * <p>
 * 使用了mapper层的StoreMapper接口
 * </p>
 * @author wtl
 * @version 1.0
 * @date 2021/11/29 14:47
 */
@Service
public class StoreServiceImpl implements StoreService {

    private StoreMapper storeMapper;

    @Autowired
    public void setStoreMapper(StoreMapper storeMapper) {
        this.storeMapper = storeMapper;
    }

    /**
     * 查询全部店铺
     *
     * @param: *@param
     * @return: 门店列表
     */
    @Override
    public List<Store> findStoreList() {
        QueryWrapper<Store> storeQueryWrapper = new QueryWrapper<>();
        storeQueryWrapper.eq("status", 1);
        return storeMapper.selectList(storeQueryWrapper);
    }

    /**
     * 根据门店ID查询信息
     *
     * @param: *@param storeId 门店序号
     * @return: 门店信息
     */
    @Override
    public Store findByStoreId(int storeId) {
        return storeMapper.selectById(storeId);
    }

    /**
     * 根据主键删除店铺
     *
     * @param: *@param storeId 门店序号
     * @return: 受影响的行数
     */
    @Override
    public int deleteByStoreId(int storeId) {
        return storeMapper.deleteById(storeId);
    }

    /**
     * 添加店铺
     *
     * @param: *@param store 门店对象
     * @return: 受影响的行数
     */
    @Override
    public int saveStore(Store store) {
        return storeMapper.insert(store);
    }

    /**
     * 更新店铺信息
     *
     * @param: *@param store 门店对象
     * @return: 受影响的行数
     */
    @Override
    public int updateStore(Store store) {
        return storeMapper.updateById(store);
    }


    /**
     *分页查询店铺
     *
     * @param: *@param pageNum 页码
     * @param:  *@param pageSize 每页个数
     * @return: 页码列表
     */
    @Override
    public Page<Store> findStoreListByPage(Integer pageNum, Integer pageSize) {
        if (pageNum == null) {
            pageNum = 1;
        }
        Page<Store> page = new Page<>();
        page.setCurrent(pageNum);
        page.setSize(3);
        QueryWrapper<Store> storeQueryWrapper = new QueryWrapper<>();
        storeQueryWrapper.eq("status", 1);
        return storeMapper.selectPage(page, storeQueryWrapper);
    }

}
